home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 4 / FM Towns Free Software Collection 4 - Disc 1.iso / pao / towns / paolib / ctrl.asm next >
Assembly Source File  |  1991-10-18  |  2KB  |  91 lines

  1. ;==============================================================================
  2. ;    << 386ASM V2.0 >>  for  FM TOWNS
  3. ;==============================================================================
  4. .386p
  5.         PAGE    60,132
  6.         NAME    CTRLCPY
  7.         TITLE    control parameter move.
  8. ;==============================================================================
  9. ;    CONTROL.EXEへのパラメータ転送
  10. ;    ( 実行コマンドラインの転送 )
  11. ;
  12. ;    < High C からの呼出形式 >
  13. ;    extern char CTRL_cmdline_data[] ;
  14. ;    extern CTRL_cmdline() ;
  15. ;    strcpy( CTRL_cmdline_data,"Q:\\RUN386.EXE XXX.EXP PARA1 ..." ) ; 
  16. ;    RealCall( CTRL_cmdline ) ;
  17. ;    exit( 0 ) ;
  18. ;
  19. ;    < note > : TABS = 4
  20. ;
  21. ;    < History >
  22. ;    1990.03.14 : CREATE
  23. ;    1991.04.13 : 清書
  24. ;
  25. ;    ★ 注意
  26. ;        本プログラムがコールされる時には、
  27. ;        CONTROL.EXE が常駐していること!
  28. ;
  29. ;    Programmed by Y.Hirata
  30. ;==============================================================================
  31. ;
  32. INCLUDE    hc.inc                                ;
  33. ;
  34. ;--------------------------------------------
  35.         public    CTRL_cmdline                ;
  36.         public    CTRL_cmdline_data            ;
  37. ;--------------------------------------------
  38. ;
  39. rmcode  SEGMENT                                ;
  40.         ASSUME    cs:rmcode                    ;
  41. ;
  42. ;********************************************
  43. ;    コントローラの構造体
  44. ;********************************************
  45. com_buf        STRUC                            ;
  46. Cmd_code    DW        ?                        ; コマンドコード(INPUT)
  47. Cmd_stat    DW        ?                        ; エラーレベル  (OUTPUT)
  48. Dos_erno    DW        ?                        ; INT21(#4B)時に返されるAX
  49.                                             ; の値(OUTPUT)
  50. Dev_code    DW        ?                        ; INT24時に渡されるAXの値(OUTPUT)
  51. Err_code    DW        ?                        ; INT24時に渡されるDIの値(OUTPUT)
  52. Cmd_line    DB        120 DUP (?)                ;
  53. com_buf        ENDS                            ;
  54. ;
  55. ;********************************************
  56. ;    実行コマンドラインの転送
  57. ;********************************************
  58.         ALIGN    4                            ; dword boundary
  59. CTRL_cmdline    PROC    FAR                    ;
  60.             push    si                        ;
  61.             push    di                        ;
  62.             push    ds                        ;
  63.             push    cx                        ;
  64. ;
  65.             mov        ax,0                    ;
  66.             int        INT_CTRL                ; Output = ES:BX
  67.             mov        di,bx                    ;
  68.             mov        es:Cmd_code[di],1        ; 再帰コール時に必要
  69.                                             ; MENUに戻るならば 0 をセット
  70.             lea        di,Cmd_line.[di]        ;
  71.             push    cs                        ;
  72.             pop        ds                        ;
  73.             mov        si,OFFSET CTRL_cmdline_data
  74.                                             ;
  75.             mov        cx,120                    ;
  76.     rep     movsb                            ;
  77. ;
  78.             pop        cx                        ;
  79.             pop        ds                        ;
  80.             pop        di                        ;
  81.             pop        si                        ;
  82.             ret                                ;
  83. CTRL_cmdline    ENDP                        ;
  84. ;
  85. CTRL_cmdline_data    DB        120 DUP (?)        ;
  86. ;
  87. rmcode        ENDS                            ;
  88. ;
  89.         END
  90.  
  91.